package rack.lite.controller

import rack.lite.model.Disciplina
import rack.lite.model.DisciplinaDao
import rack.lite.view.Console as con
import org.apache.commons.lang.StringUtils as sutils

/**
 *
 * @author atila
 */
@Singleton class DisciplinaBo {

   def create() {
      Disciplina d = new Disciplina()
      println " Criar Disciplina ".center(50, "·")
      def value
      // setting codigo
      while (true) {
         println "Digite Código: "
         print con.bash
         value = con.read.nextLine()
         if (value != "" && sutils.isNumeric(value)) {
            def codigo = value.toInteger()
            if (DisciplinaDao.instance.exists(codigo)) {
               println "${con.info} Disciplina ${codigo} já existe."
               continue
            } else {
               d.codigo = codigo
               break
            }
         } else {
            println "${con.warning} Código não pode ser vazio, e pode conter somente números."
            continue
         }
      }

      // setting nome
      while (true) {
         println "Digite Nome: "
         print con.bash
         value = con.read.nextLine()
         if (value != "" && sutils.isAlphanumericSpace(value)) {
            d.nome = value
            break
         }
         continue
      }

      // setting the curso
      println "Digite Curso: "
      print con.bash
      value = con.read.nextLine()
      if (value != "" && sutils.isAlphanumericSpace(value)) {
         d.curso = value
      } else {
         d.curso = null
      }
      // saving in the database
      DisciplinaDao.instance.create(d)
   }

   def delete() {
      println " Deletar Disciplina ".center(50, "·")
      def value
      println "Digite o Código da disciplina: "
      print con.bash
      value = con.read.nextLine()
      if (value != "" && sutils.isNumeric(value)) {
         DisciplinaDao.instance.delete(value.toInteger())
      }
   }
}

